package com.sfx.other.Generics;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sfx
 * Date: 2023-09-09
 * Time: 8:41
 */
public class NumberPair<U extends Number,V extends Number>
        extends Pair<U,V> {
    public NumberPair() {
    }

    public NumberPair(U first, V second) {
        super(first, second);
    }
    public double sum() {
        return getFirst().doubleValue() + getSecond().doubleValue();
    }

    /**
     * 限定类型必须实现 Comparable 接口
     * T 是一种数据类型必须实现Comparable接口,并且必须是相同类型的元素进行比较
     */
    public static <T extends Comparable<T>> T max(T[] arr) {
        T max = arr[0];
        for(int i=1;i<arr.length;++i) {
            if(arr[i].compareTo(max) > 0) {
                max=arr[i];
            }
        }
        return max;
    }



    public static void main(String[] args) {
        NumberPair<Integer,Double> pair = new NumberPair<>(10,10.2);
        System.out.println(pair.sum());
    }
}